1. Field of the Invention
The invention relates to network transmission using the TCP protocol.
2. Description of the Related Art
A storage area network (SAN) may be implemented as a high-speed, special purpose network that interconnects different kinds of data storage devices with associated data servers on behalf of a large network of users. Typically, a storage area network includes high performance switches as part of the overall network of computing resources for an enterprise. The storage area network is usually clustered in close geographical proximity to other computing resources, such as mainframe computers, but may also extend to remote locations for backup and archival storage using wide area network carrier technologies. Fibre Channel networking is typically used in SANs although other communications technologies may also be employed, including Ethernet and IP-based storage networking standards (e.g., iSCSI, FCIP (Fibre Channel over Internet Protocol), etc.).
As used herein, the term “Fibre Channel” refers to the Fibre Channel (FC) family of standards (developed by the American National Standards Institute (ANSI)) and other related and draft standards. In general, Fibre Channel defines a transmission medium based on a high speed communications interface for the transfer of large amounts of data via connections between varieties of hardware devices.
FC standards have defined limited allowable distances between FC switch elements. Fibre Channel over IP (FCIP) refers to mechanisms that allow the interconnection of islands of FC SANs over IP-based (internet protocol-based) networks to form a unified SAN in a single FC fabric, thereby extending the allowable distances between FC switch elements to those allowable over an IP network. For example, FCIP relies on IP-based network services to provide the connectivity between the SAN islands over local area networks (LANs), metropolitan area networks (MANs), and wide area networks (WANs). Accordingly, using FCIP, a single FC fabric can connect physically remote FC sites allowing remote disk access, tape backup, and live mirroring.
In an FCIP implementation, FC traffic is carried over an IP network through a logical FCIP tunnel. Each FCIP entity on either side of the IP network works at the session layer of the OSI model. The FC frames from the FC SANs are encapsulated in IP packets and transmission control protocol (TCP) segments and transported in accordance with the TCP layer in one or more TCP sessions. For example, an FCIP tunnel is created over the IP network and a TCP session is opened in the FCIP tunnel.
One common problem in TCP/IP networks is packet loss. Each packet must be acknowledged. Usually this is done sequentially as the packets arrive, but in certain cases packets may be lost or corrupted and following packets received correctly.
For a TCP connection, a TCP packet can either encompass application data or it is a TCP header only packet. For optimal bandwidth utilization, ideally each TCP packet should send application data if available.
Packet loss on the network would cause reception of out of order frames at the TCP receiver. Each out of order packet received on the receiver will generate a TCP header only packet (called Duplicate Acknowledgement or DUP ACK) to inform the transmitter about the loss. The TCP transmitter, on receiving 3 DUP ACKS, will do retransmit of the lost packet and enter fast recovery. In fast recovery, the DUP ACKs received are used to inflate the congestion window. The DUP ACKs going from the TCP receiver to the TCP transmitter do not encompass any application data, however they still consume the bandwidth/rate for that connection.
The bandwidth delay product (i.e. # of inflight bytes/TCP packets) for a high latency connection is very high. In a high latency environment, the number of duplicate ACKs going from the TCP receiver to the TCP transmitter will be very high and will last for an RTT (round trip transit) time. This can substantially impact the rate of application data from the TCP receiver to the TCP transmitter while the DUP ACKs last. If the network from the TCP transmitter to the TCP receiver side is experiencing loss for an extended period of time, it will greatly reduce the application data rate from the TCP receiver to the TCP transmitter.
This may eventually cause bandwidth sensitive traffic to timeout.